This document is meant to record implementation issues with the various RDBMS's
that were encountered while trying to implement a cross-platform RDBMS Sail.

* Most databases cannot index large (text) fields like CLOBs or BLOBs, nor can
  these fields be compared to values in queries. Basically, this means that
  these fields are store-and-retrieve only. PostgreSQL is a positive exception
  here. MySQL supports indexing of value-prefixes in that it requires you to
  specify a prefix length on which the indexing will be based.

* MySQL's text fields (char, varchar, CLOB) are all case-sensitive by default.
  As an alternative for the former two, one can use 'char binary' and 'varchar
  binary' fields. An alternative to MySQL's CLOB is BLOB, but this can only be
  used for ASCII text and binary data. Using e.g.
  PreparedStatement.setString(...) for a BLOB field will force the US-ASCII
  encoding upon the characters, mangling any non-ASCII characters. Starting from
  MySQL 4.1 one can specify the 'collation' for text fields, which determines
  whether characters are treated case-sensitively, case-insensitively or binary.

* HSQLDB only allows one to specify uniqueness constraints after the column
  declarations. Specifying the UNIQUE keyword directly after a unique field
  results in an error.

* Table- and index names are limited to 18(?) characters in Oracle.

* MySQL 3.x does not support any subqueries other than
  "INSERT INTO ... SELECT ...".

* Table creation is very slow in PostgreSQL (tested with 7.0.x).

* Oracle converts empty strings to NULL values.
